1. Technical Field
The invention relates generally to the recording of data on compact discs, and, more particularly, to an improved file system for incremental recording of data onto compact discs.
Since the introduction of the first compact disc players in about 1983, compact disc technology has taken the consumer electronics and computer industries by storm. What was once a little known technology used primarily to reproduce high fidelity audio information for the listening pleasure of a fortunate few has become a widely used medium for the storage and delivery of a variety of different types of information to a large number of individuals and for a wide variety of applications. Today for example, everything from computer programs and games to audio programs to video and multi-media programs are distributed on compact disc.
However, while the use of compact discs as a means for distributing a wide variety of digital information sources to end users has advanced considerably, the relative unavailability of compact disc recording technology, coupled with certain technical limitations thereof have, until recently, kept compact disc technology from becoming a viable mass storage alternative for most end users, and particularly users of personal computers. In the past, compact disc recording devices (CD-R's) were very expensive, making them unavailable as a practical matter to most personal computer users. Recently, however, prices have declined to the level where many users of personal computers can now easily afford to include a CD-R as part of their systems.
Availability, however, is only part of the problem. While the arrival of relatively inexpensive CD-R technology is a welcome advance, its ultimate usefulness to personal computer users remains significantly limited by certain problems and limitations described hereinafter.
Over the years, technical specifications and standards have been adopted for both the physical layout of data recorded on compact discs and for the logical format and organization of the data. The great majority of manufacturers of compact discs, disc players, and disc recorders have adopted the physical layout standards defined in the so-called Red (also known as IEC 908), Yellow (also known as ISO/IEC 10149), and Orange books produced by Sony and Philips, which are incorporated herein by reference. The logical file structure which has become the industry standard is the so-called ISO 9660 standard, which has been widely published and which is also incorporated herein by reference. It is estimated that today there is an installed base of more than 50 million compact disc players which adhere to these industry standards and this installed base continues to grow.
The Yellow and Red Book standards are primarily intended to support the recording of a large volume of data (up to a capacity of 650 megabytes on a 74 minute disc) onto a compact disc in a single, uninterrupted write. This works well for publishers and others who use CD's, in this case referred to as CD-ROMs, primarily to distribute large volumes of data. Most personal computer users, however, require the capability to incrementally store one or more data files on a mass storage device from time to time, and to read these files back at other times. While the Orange Book standard provides a physical format which supports incremental recording of data, a logical file structure that can work within the physical standard to provide incremental recording capability useful to personal computer users is still needed.
Under the current standards, a recordable compact disc is divided into a fixed number of blocks (also called sectors). A disc's capacity is measured in terms of minutes, seconds, and sectors. There are 75 sectors in each second, so a 74-minute disc, for example, contains 333,000 sectors, i.e., 74 minutes.times.60 seconds/minute.times.75 sectors/second. The actual amount of user data that can be recorded in a sector varies with the physical format used to record the disc. In the physical format most commonly used to record computer data, i.e., the Yellow Book standard, each sector contains 2 kilobytes of data. Thus, in this format a 74-minute disc can contain up to approximately 650 megabytes of data.
Under the current Orange Book standard, a disc can have multiple sessions. Each session comprises a lead-in area, which contains certain control and other information used by the CD player hardware, a program area in which user data is recorded, and a lead out area. A session is closed by recording the lead-in and lead-out areas after the data to be recorded is recorded in the program area. The lead-in and lead-out areas for the first session occupy a total of approximately 23 megabytes of disc storage space. The lead-in and lead-out areas for each subsequent session occupy a total of approximately 13 megabytes of disc storage space.
Under the current Orange Book and ISO 9660 standards, data is most often recorded onto compact disc using the so-called "track at once" method. In this method, each time data is recorded onto a disc, it is written in consecutive physical sectors in a single track. The physical standard imposes a limit of 99 tracks per disc, which may be distributed between one or more sessions. Each track is preceded by a short pre-gap. In order for recorded files to be read back by existing CD-ROM players, an ISO 9660 file structure must be recorded for the data in each track. This file structure may or may not describe files which were previously recorded in other tracks of the same disc. In addition, before any recorded file can be read, the session containing the track in which the file is recorded must be closed.
These existing standards present significant limitations for the personal computer user who wishes to use CD-R as an incremental mass storage device. For example, at any given time a computer user may have only one or a small number of relatively small files to record, perhaps totalling only a few hundred kilobytes. In order to gain access to these files via a current CD-ROM player, the user would have to close the session containing the track in which the files are recorded. Thus, in this typical scenario, session overhead of between 13-23 megabytes is required to gain access to files totaling only a few hundred kilobytes. It will be recognized that the more often a user repeats this scenario to gain access to his data, the more storage space he will lose. Moreover, an entire ISO 9660 file structure must be re-recorded for each track or set of tracks recorded in each track at once write. Thus, if the user desires at some time to record a single update to a previously recorded file, for example, a new session must be opened and an entire ISO 9660 file structure must be written for the single track containing the single updated file.
A new logical file structure specification supporting incrementally written files has been proposed by the European Computer Manufacturers' Association (ECMA). ECMA has proposed a specification, referred to as ECMA 168 (also known as DIS 13490), which is an extension of the ISO 9660 specification. The ECMA 168 specification is also incorporated herein by reference.
The Orange Book and ECMA 168 specifications together define a physical recording method and format and a logical file structure which support incrementally recording data onto compact disc in "packets" of fixed or variable length. Files written from the host to the CD-R to be recorded on the compact disc are divided into one or more packets, which are recorded in consecutive physical locations. In order to accommodate the incremental recording of data at different times, each packet is preceded by a link block and four run-in blocks, and followed by two run-out blocks. These additional blocks are necessary for the CD-R hardware to determine where recording was last interrupted and where recording can next begin.
However, the Orange Book/ECMA 168 packet recording method still has significant limitations. One is that it is not compatible with existing CD-ROM players and device drivers (or software extensions) that adhere to certain levels of the Yellow Book/ISO 9660 specifications. Such players and their device drivers do not recognize link, run-in and run-out blocks which may be interspersed with recorded packets. They return a "read error" and abort further playback operation when such blocks are encountered.
CD-ROM designs which recognize and skip over the link and run blocks have been proposed in an effort to avoid these "read error" problems. However, while this solution might be feasible when only fixed length packets are to be written, it is extremely difficult to implement when variable length packets of unknown size are to be written. Moreover, these changes are incompatible with the huge installed base of existing ISO 9660 compatible CD-ROM players. These existing players will never be capable of reading from compact disc media recorded via the packet method as proposed by ECMA.
Furthermore, the directory, path and file structures proposed by ECMA require extensive amounts of linking and re-linking each time a file or directory is updated. They are so complex they are generally suitable only for applications where only a small number of incremental writes are anticipated. Otherwise the structures quickly become too complex and unwieldy and require too much space and overhead to maintain.
There thus exists a need for an improved file system for supporting incremental recording of data onto compact discs, which overcomes the many heretofore enumerated problems and limitations of the prior art systems and methods. The elimination of these problems and limitations would finally make CD-R technology a viable, inexpensive, ultra high capacity, alternative to the ever growing mass storage needs of personal computer users.
It is therefore one object of the present invention to provide an improved file system and method capable of supporting the incremental recording of data files onto compact disc.
It is another object of the present invention to provide such a file system and method that support data files incrementally recorded onto compact disc efficiently and with minimal overhead requirements.
It is another object of the present invention to provide such a file system and method capable of providing rapid access to incrementally recorded files.
It is still another object of the present invention to provide such a file system and method which are flexible enough to be made compatible with the huge installed base of existing CD-ROM players and drivers, and also with future CD-ROM player and driver designs.
It is a further object of the present invention to provide such a file system and method which are flexible in implementation, and which facilitate the recovery of data in case of errors or interruptions.
It is a still further object of the present invention to provide such a file system and method which will find use with relatively inexpensive standard CD-R's which may be used with personal computer systems.
These and other objects, advantages and features of the present invention will become clear to those skilled in the art by reference to the following summary of the invention, detailed description of a presently preferred embodiment of the invention, and the appended drawings and claims.